package com.sharelords.demo.common.util;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;

/**
 * @Description: 模型类动态代理
 *
 * @Author: 千古龙少
 * @Time: 2019/12/7 19:49
 */
public class ObjectClassInvoke {
	
	/**
	 * 获取类的全局变量中，带有指定注解的属性
	 *
	 * @Author: 千古龙少
	 * @Time: 2019/12/7 19:49
	 * @param clazz 指定class
	 * @param anoCls 指定注解
	 * @return java.lang.reflect.Field
	 */
	public static Field getFieldOfAno(Class<?> clazz, Class<? extends Annotation> anoCls) {
		Field[] fields = clazz.getDeclaredFields();
		for (Field field : fields) {
			if (field.isAnnotationPresent(anoCls)) {
				// 设置对象的访问权限，保证对private的属性的访问
                field.setAccessible(true);

				return field;
			}
		}

		return null;
	}

}
